#include <Arduino.h>
#include "serial_cli.h"
#include "dev/stepper.h"
#include "dev/network.h"
#include "dev/led.h"
#include "shared_values.h"
#include "web_page_server.hpp"
#include "macro.hpp"


void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.setTimeout(0);
  led_init(); // 初始化LED
  Serial.println("[UMEKO] Machine started");// led_init();
  if (wifi_initalize_from_file()){
    Serial.println("[UMEKO][NETWORK] WiFi连接成功");
    set_led_period(300);
  } else {
    Serial.println("[UMEKO][NETWORK] WiFi连接失败,使用默认设置");
    // wifi_save_to_file("default_ssid", "default_password"); // 使用默认设置
    Serial.println("[UMEKO][NETWORK] 启动热点模式");
    WiFi.disconnect();
    wifi_start_hotspot(default_ap_ssid, default_ap_password); // 启动热点
    set_led_period(1000);
  }
  stepper = new StepMotor(PUL_PIN, DIR_PIN, EN_PIN, 0); // 使用共享定义的管脚初始化stepper对象
  stepper->set_enable(true);       // 启用电机
  load_macro(); // 加载宏文件
  server = new WebServer(80); // 创建 Web 服务器实例
  setupWebServer(); // 设置 Web 服务器
  server->begin(); // 启动服务器
  Serial.println("[UMEKO][HTTP] Web server started");
  startWebServerTask(); // 启动 Web 服务器任务
}

void loop() {
  serial_cli_loop();
  led_looper();
  macro_looper(); 
  delay(5);
}

